package dao.postgresql;

import dal.Conexion;
import dao.ColumnaDao;
import dto.Columna;
import java.sql.ResultSet;
import java.util.Vector;

/**
 *
 * @author joseco
 */
public class ColumnaDaoPostgreSQL extends ColumnaDao{

    @Override
    public Vector<Columna> select(String nombreTabla) {
        StringBuffer query = new StringBuffer("SELECT column_name, data_type FROM information_schema.columns WHERE table_name ='")
                .append(nombreTabla)
                .append("'");
        Conexion objConexion = Conexion.getOrCreate();
        ResultSet objResultSet = objConexion.ejecutar(query.toString());

        Vector<Columna> vector = new Vector<Columna>();
        try {
            while(objResultSet.next()){
                String nombre = objResultSet.getString("column_name");
                String tipoDato = objResultSet.getString("data_type");
                if(tipoDato.contains("(")){
                    tipoDato = tipoDato.substring(0,tipoDato.indexOf("("));
                }
                Columna objColumna = new Columna(nombre, tipoDato);
                vector.addElement(objColumna);
            }
            objConexion.desconectar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            if(objConexion != null)
                objConexion.desconectar();
        }

        return vector;
    }
    
}
